<?php

/**
 * 从数据库导出创建表的命令到指定的 SQL 文件。
 * 注意：必须有 infomation_schema 数据库的权限 或者 有 show tables 权限。
 */

$dbConfig = require 'config.php';
include 'lib/Db.class.php';

$filename = '../output/export_schema_' . $dbConfig['database'] . '.sql';
file_put_contents($filename, '');

$sqlsArr = exportSchema($dbConfig);
file_put_contents($filename, implode(PHP_EOL . PHP_EOL, $sqlsArr));
echo 'finish';

function exportSchema($dbConfig)
{
    $pdo = new Db($dbConfig);
    $list = $pdo->query('show tables');
    $data = [];
    foreach ($list as $row) {
        $table = current($row);
        $result = $pdo->query("show create table `{$table}`");
        $data[] = $result[0]['Create Table'] . PHP_EOL . PHP_EOL;
    }
    return $data;
}
